package uy.org.softtech.cssuite.web.modelo;

import static org.springframework.util.StringUtils.hasText;
import uy.org.softtech.cssuite.core.Modelo;
import uy.org.softtech.cssuite.entidad.usuario.Usuario;

public class ModeloPerfil extends Modelo {
	
	//NO EDITABLES
	private Long id;
	private String usuario;
	private String rol;
	private String ultimoLogin;
	
	//EDITABLES
	private String apellido;
	private String primerNombre;
	private String segundoNombre;
	private String correoElectronico;
	private String telefono;
	private String celular;
	
	//CAMBIO CREDENCIALES
	private String password;
	private String confirmar;
	
	public void inicializaModelo(Usuario usuario) {
		if (getId() == null) {
			setId(usuario.getId());
		}
		if(!hasText(getUsuario())) {
			setUsuario(usuario.getUsuario());
		}
		if(!hasText(getRol())) {
			setRol(usuario.getRol().getNombre());
		}
		if(!hasText(getUltimoLogin())) {
			setUltimoLogin(usuario.convierteUltimoLogin());
		}
		if(!hasText(getApellido())) {
			setApellido(usuario.getApellido());
		}
		if(!hasText(getPrimerNombre())) {
			setPrimerNombre(usuario.getPrimerNombre());
		}
		if(!hasText(getSegundoNombre())) {
			setSegundoNombre(usuario.getSegundoNombre());
		}
		if(!hasText(getCorreoElectronico())) {
			setCorreoElectronico(usuario.getCorreoElectronico());
		}
		if(!hasText(getTelefono())) {
			setTelefono(usuario.getTelefono());
		}
		if(!hasText(getCelular())) {
			setCelular(usuario.getCelular());
		}
	}

	/*
	 *  GETTERS
	 */
	public Long getId() {
		return id;
	}
	public String getUsuario() {
		return usuario;
	}
	public String getRol() {
		return rol;
	}
	public String getUltimoLogin() {
		return ultimoLogin;
	}
	public String getApellido() {
		return apellido;
	}
	public String getPrimerNombre() {
		return primerNombre;
	}
	public String getSegundoNombre() {
		return segundoNombre;
	}
	public String getCorreoElectronico() {
		return correoElectronico;
	}
	public String getTelefono() {
		return telefono;
	}
	public String getCelular() {
		return celular;
	}
	public String getPassword() {
		return password;
	}
	public String getConfirmar() {
		return confirmar;
	}
	
	/*
	 *  SETTERS
	 */
	public void setId(Long id) {
		this.id = id;
	}
	public void setUsuario(String usuario) {
		this.usuario = usuario;
	}
	public void setRol(String rol) {
		this.rol = rol;
	}
	public void setUltimoLogin(String ultimoLogin) {
		this.ultimoLogin = ultimoLogin;
	}
	public void setApellido(String apellido) {
		this.apellido = apellido;
	}
	public void setPrimerNombre(String primerNombre) {
		this.primerNombre = primerNombre;
	}
	public void setSegundoNombre(String segundoNombre) {
		this.segundoNombre = segundoNombre;
	}
	public void setCorreoElectronico(String correoElectronico) {
		this.correoElectronico = correoElectronico;
	}
	public void setTelefono(String telefono) {
		this.telefono = telefono;
	}
	public void setCelular(String celular) {
		this.celular = celular;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public void setConfirmar(String confirmar) {
		this.confirmar = confirmar;
	}

	@Override
	public String toString() {
		StringBuilder builder = new StringBuilder();
		builder.append("ModeloPerfil [");
		builder.append("id=" + getId() + ", ");
		builder.append("usuario=" + getUsuario() + ", ");
		builder.append("rol=" + getRol() + ", ");
		builder.append("ultimoLogin=" + getUltimoLogin() + ", ");
		builder.append("apellido=" + getApellido() + ", ");
		builder.append("primerNombre=" + getPrimerNombre() + ", ");
		builder.append("segundoNombre=" + getSegundoNombre() + ", ");
		builder.append("correoElectronico=" + getCorreoElectronico() + ", ");
		builder.append("telefono=" + getTelefono() + ", ");
		builder.append("celular=" + getCelular() + ", ");
		builder.append("password=" + getPassword() + ", ");
		builder.append("confirmar=" + getConfirmar());		
		builder.append("]");
		return builder.toString();
	}

}
